home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
objtba.zip
/
MMGR.MNL
< prev
next >
Wrap
Text File
|
1993-01-04
|
25KB
|
560 lines
Mail Manager Users & Programming Guide Page 1
************************************************************
* *
* --<<< MAIL LIST MANAGER >>>-- *
* Demonstration Program for *
* ObjectBase *
* The Object Oriented Data Base Management Tool Box for *
* Turbo Pascal version 5.5. *
* and *
* ObjectInterFace *
* The Object Oriented User Interface Tool Box for *
* Turbo pascal version 5.5 *
* COPYRIGHT NOTICE *
* *
* MMGR.EXE, MMGR.PAS, OopBase.TPU ToolBox and *
* DBObjt.TPU ToolBox and the documentation *
* included are (c) 1990 Thomas W. Harden, *
* all rights reserved. *
* *
* OopBase.TPU & DBObjt.TPU--ToolBoxes are *
* Shareware products and are made available *
* to the programmer to test and use for *
* evaluation purposes only. They may not be *
* circulated in any incomplete or modified *
* form, nor sold for profit, without the *
* express written consent of the author. *
* *
************************************************************
Mail Manager Users & Programming Guide Page 2
SHAREWARE NOTICE:
OopBase.TPU & DBObjt.TPU ToolBoxes (ObjectBase) are Shareware
products and are made available to the programmer to test and use
for evaluation purposes only. Should you find them useful,
register your use with Harden Consulting so update information
and future product offerings can be made available to you. To
register your use of the above mentioned products, send check or
money order for $79.95 payable to Thomas W. Harden or Harden
Consulting and the form found at the end of this documentation.
When Registration is received you will receive the latest version
of ObjectBase (See specifications section for current
enhancements), full documentation plus announcements of upgrades
will be mailed to you with special pricing made available to
registered owners.
DISCLAIMER:
You undertake the use of MMGR.EXE, OopBase.TPU and DBObjt.TPU at
your own risk. The Author and Harden Consulting accept no
liability for any damages resulting from its use or misuse.
Problem reports and suggestions are appreciated. If you are a
registered user please notify Harden Consulting at the following
address:
Harden Consulting
48 Red Post Crescent
Fairport, NY 14450
or leave a message on the Compuserve network: ID 76317,2503.
Mail Manager Users & Programming Guide Page 3
INTRODUCTION
The Mail List Manager program included in this package is a
demonstration program written in turbo Pascal v 5.5 to
demonstrate two software developement tool boxes: ObjectBase
and ObjectInterFace. The documentation includes two sections:
A Mail List Manager User's Guide and Programmers Guide.
The program can be run on any IBM PC,XT,AT or compatible with a
minimum of 256k memory that uses DOS 2.0 or higher. A minimum
of one disk drive is required.
Mail List Manager makes extensive use of Pop up windows and
menus to operate the program. It has context sensitive help
available at all times by pressing <F1>.
Mail Manager Users & Programming Guide Page 4
USER GUIDE
OVERVIEW
================================================================
The intent of Mail List Manager is to allow the user to
easily maintain information concerning companys and the
contacts within those companies with whom the user might
want to communicate on a reqular basis. The user will have
to enter information concerning those companies and
individuals and also how they relate to each other. Mail
List Manager allows the user to view this information either
on screen in a form view or report type format and print
mailing lists and reports concerning the information
contained in the system. This is all accomplished through a
series of Menus and Forms that are presented to the user to
allow for quick and easy access to all the functions of the
program.
Mail Manager Users & Programming Guide Page 5
INSTALLATION
Files required.
In order run Mail List Manager the following files must be
available in the current directory:
MMGR.EXE The program file.
MMGR.HLP The help file for use by
the context sensitive help
system.
Copying the files.
Copy MMGR.EXE to the disk and directory from which you would
like to work.
At the DOS Prompt( d:>) type :
COPY [path]MMGR.EXE [path]<Cr>
Note: '[ ]' = Optional; 'path' = Drive letter ':\'
directory.
Copy MMGR.HLP to the disk and directory from which you would
like to work.
At the DOS Prompt( d:>) type :
COPY [path]MMGR.HLP [path]<Cr>
Directories
Mail List Manager is set-up to use the current drive or
directory for the storage of the system configuration, data,
and index files that it generates. The program also goes to
this area to find the Help file. This means that what ever
is the current directory when you start the program the help
file (MMGR.HLP), The Data files (*.DAT), The Index files
(*.NDX) and the Configuration files (*.CNF) should be in
that directory. This may be accomplished by the command:
CD path <Cr> where path is the drive and directory where the
above files are located.
Screen appearence.
When Mail List Manager is started it automaticly determines
the monitor type that is in use. If their might be some
confusion between a CGA or LCD monitor it will ask which
monitor type you have. Default colors are set at that time.
If you would like to change the default color values you
may accomplish this through the menu system.
Mail Manager Users & Programming Guide Page 6
STARTING THE PROGRAM
Loading the program
To load and run Mail List Manager type MMGR<Cr> at the DOS
prompt and your on your way.
Possible problems
If you have run the program before and all files required by
the program have been created and messages are displayed
suggesting that those files are not present, you have
probably started the program from a directory that does not
contain the requiset files. <Ctrl Brk> will stop the program
and then you can Change Directory to the directory or drive
where these files reside and restart the program.
OPERATION OF PROGRAM
Help System
The Mail List Manager help system is context sensitive and is always
available by hitting the <F1> key. You may move through the
available information with the <PgDn> and <PgUp> keys.
<Esc> exits Help.
Menu System
The Mail List Manager Menu System is a Pop Up Menu system that is both
quick and helpful. You may select an option by any of three
methods. You may highlight an option by using the <Up> and
<Down> arrow, <End>, or <Home> keys to move the highlight
bar and when the desired option is highlighted strike <Cr>.
You may hit the key that is highlighted in the desired
option and it will be executed immediately. You may also hit
the numeric key that corresponds to the position of the
desired option and it will be executed immediately. <Esc>
exits that menu and returns you to the previous menu.
Mail Manager Users & Programming Guide Page 7
MENU TREE
+>PERSON SEARCH
| Correct person +>CONTACT DELETE
| Next person | Del relation
| Prev person | Next relation
| Add person | Abort delete
+>COMPANY MAINT | Quit search |
| Edit company |+-----------------++
| Find company || +>PERSON MAINT | >COMPANY SEARCH
| Next company || | Edit person | | Correct comp
| Prev company || | Find person | | Next company
| Add company || | Next person | | Prev company
| Select/deSelect|| | Prev person | | Add company
| Contact add --+| | Add person | | Quit search
| cOntact next | | Select/deSelect|
| Del contact ---+ | Contact add ---+
| Quit company maint| cOntact next |
| | Del contact -+
| +----+ Quit person maint
MAIN MENU | |
Company maint + | +->LABELS MENU
Person maint ------------------+ | Contacts @company
Reports --------->REPORTS MENU | cOmpany report
Utilities ---+ Mail labels --+ Quit labels
Quit Program | Company report -+
| conTact report +----->COMPANY REPORTS
| Quit reports w/ Contacts
| w/O contacts
+>UTILITY MENU Quit company reports
Screen colors
saVe data
Quit utility
Mail Manager Users & Programming Guide Page 8
Using The Screen Forms
When editing data within the screen forms that are
presented, you will be prompted for the data that is
required, proper formatting is automatically handled.
Movement between fields is accomplished by the <Up> and
<Down> arrows, <PgDn>, <PgUp> and <Cr>. You may exit the
form at any time by using <Ctrl-Z>, otherwise a normal exit
is accomplished when the last field is exited with a <Cr>.
How to add a Company
To add a Company select Company Maint. from the Main Menu.
When the Company Maintenance Menu is presented select Add a
Company and a blank record will be presented to you in the
Company Edit form. Type in the data requested by the
prompts in the various fields. When finished with the data
entry you will be asked to confirm the addition of the
information that you have entered. Select Yes. The record
is now stored in the data file.
How to add a Person
To add a Person select Person Maint. from the Main Menu.
When the Person Maintenance Menu is presented select Add a
Person and a blank record will be presented to you in the
Person Edit form. Type in the data requested by the
prompts in the various fields. When finished with the data
entry you will be asked to confirm the addition of the
information that you have entered. Select Yes. The record
is now stored in the data file.
How to add a Contact
From either the Person or Company Maintenance Menus select
Contact Add. You will be prompted for the alpha key of the
Company or Person, respectively, that you wish to add. The
data files are searched for the alpha key and the closest
match is displayed. If it is correct select 'Correct' from
the Contact Add Menu other wise select one of the other
options until you have correct contact displayed then select
'Correct'. You will then be asked for the position that
this contact has. Enter it and your done.
How to print a report
Select Reports from the Main Menu and continue to select the
options that are presented to you until you get what your
after. Reports can be sent to the printer, the screen, or a
file for later printing. The Contact report may be sent to
a file in a format that can be used by other data base
programs if desired. This is available as an example as
apposed to being a normal part of this program.
Mail Manager Users & Programming Guide Page 9
PROGRAMMERS GUIDE
CONCEPT
The idea behind MMGR was to create a program that would
demonstrate the user interface provided by Harden Consulting in
it's application programs. What grew out of the project was a
frustration with dealing with the low level data file and index
file routines common to most data base toolboxes. Ultimately, an
Object Oriented approach towards DataBase Management was taken.
The InterFace and DataBase management routines were rewritten
from an Object Oriented perspective. This allowed for all the
functionality of the previous toolbox routines but gave the added
benefit of extensibility and ease of use.
FILE STRUCTURE
The file structure used in this program was derived using Entity
Relational Analysis. The assumption was that I would be dealing
primarily with persons that had a relationship with a company.
One could take a flat file approach and create a single file that
incuded all the information required for a contact within a
company. If you dealt with only one individual in each company
and that individual only had a position at a single company then
this would be the rational approach. Though, in the real world
one might be dealing with more than one person at a company and
also an individual could be dealing with more than one
company, i.e.- a consultant. Thus, a flat file approach would
could lead to a tremendous amount of data redundency.
What we actual have then is a potential many to many
relationship between the primary entities, companies and persons.
Using the ERA methodology, I created records for each record that
contained the information I wanted to keep for each entity. To
this was added a field that would uniquely identify each instance
of that record. In this case a system generated numericly based
code was used. To handle the many to many relation that existed
I created a third record structure that described the
relationship between the two intities that resolved the Many to
Many relationship to a One to Many relationship from either
perspective.
At this point the data and index files that would be required to
implement this are:
1) Company data file
2) Person Data File
3) Contact Data File
4) company code index file
5) person code index file
6) contact company code index file
7) contact person code index file
These files will allow the computer to relate company records to
person records correctly and efficiently.
Mail Manager Users & Programming Guide Page 10
A problem exists though. People will be using this system. They
will be wanting to access this information and numeric codes are
not a very user friendly approach to this. Consequently, two
additional index files are used, both Alphabeticly arranged for
user friendly access:
1)Company Alpha index file and
2) Person Alpha index file.
The Data and Index files now involved are listed below:
DataFile IndexFile Key Type User
----------------------------------------------------------
COMPANY.DAT COMPCODE.NDX CODE SYSTEM
" COMPALPH.NDX ALPHAKEY USER
CONTACT.DAT CONTCCD.NDX CODE SYSTEM
" CONTPCD.NDX CODE SYSTEM
PERSON.DAT PRSNCODE.NDX CODE SYSTEM
" PRSNALPH.NDX ALPHAKEY USER
Now this simple task of tracking business contacts has turned to
a relative complex task. Our data base consists of 9 files that
must be manipulated and maintained. The implecation is that a
nightmare of tedious calls to different routines for each index
and data file will have to made to manage the editing, addition
and deletion of records within the database. I'm lazy. I don't
like to deal with this tedium.
Mail Manager Users & Programming Guide Page 11
FILE MANAGEMENT
Because of this laziness, I ask myself, since the maintenance of
a database system is really fairly cut and dried why couldn't a
set of procedures be developed to handle the tedium. ObjectBase
is born.
ObjectBase is an Object Oriented approach to this problem. The
DB object is informed of the data and index files that will be
included in its data base. The data and index files are also
Objects that have been informed of the source of their data and
have been given the know how to be self maintaining. What I mean
by this is the Index File Object is aware of the spot in system
memory where its Key value is located and knows what to do with
it. The Data File Object knows which indexes are associated with
the data file and also knows where its data buffer is located.
The DB Object knows which Data Files belong to the DataBase and
how they relate to each other. By endowing the DB Object with
this knowledge, it can now handle most of the maintenance chores
with which the programmer normally has to contend.
For instance, when a record is edited, before putting the record
back in the database the datafile checks to see if their has been
a change in its data buffer if so it then stores the modified
copy of the record over the old copy and calls on its indexes to
do the same. They in turn compare the current values of their
databuffer with the data that was originally present and will
update their index structure accordingly. What this means to the
programmer is that he is no longer required to deal with the
tedium of insuring that all files have been updated.
The relational aspects are also handled by the DB Object. Once
informed of the relationships required for a particular
application or procedure a call to associate will fill the
various record buffers with related data. If the relationship is
a one to many relationship you can use next association to step
through the related records. It makes the associations appear to
be a circular Queue.
What all this means is that much of the functionality (and even
more) of DBMS systems is provided with the ability to control the
environment and interface to the user with the power of Turbo
Pascal.
Mail Manager Users & Programming Guide Page 12
INTERFACE
The file management headache has been solved. ObjectBase to the
rescue. The remaining problem, interacting with the user, still
looms.
When programming a user interface certain characteristics are
important. Among these are completeness, consistency,
intuitiveness, error trapping, informative prompts, etc. My
experience has been that the user interface soon becomes the most
time consuming portion of the programmers task. The larger the
project the greater the variation from one program module to
next. ObjectInterFace is born.
ObjectInterFace is an Object Oriented approach to solving the
problems of building user friendly interfaces with out spending
excessive amounts of time in the process. The dialog between the
program and the user should be as fast and simple as possible.
To this end, I again chose an Object Oriented approach.
There are three basic types of objects that have been created.
They are a:
1) A Help window object
2) A Menu object
3) A Form object.
All are based on the common Window object. A related type of
object is also a part of the system and that is an interface
field object. These are utilized by the other objects. This
approach allows the programmer to modularize his program into
declarations of the different objects required and then call them
as required without the fuss normally associated with this aspect
of the programming task.
ObjectInterface Provides to the programmer the Objects required to
perform the following:
1) Present Popup Menus
2) Present Popup Forms for data entry, editing and display,
3) Present Popup Messages
4) Present Popup Queries
5) Present Popup Dialog Windows
6) Present Context Sensitive Help Windows
7) Allow for Varified Data Entry.
The Forms Object provides the ability to create a popup data
entry, edit, and display form that utilizes a list of field
objects that the programmer loads into a particular instance of
the form object.
The Fields Object provides for the consistant presentation of
data for entry, editing, and display. The types of information
that can be handled with the basic package are:
1) Strings
Mail Manager Users & Programming Guide Page 13
2) Formatted strings
3) Varified Dates
4) Integers within specified range
5) Real numbers within specified range
6) Currency within specified range
7) Varified Time
8) Pick fields
9) Boolean Fields
10) Conditional fields tied to either numeric, boolean,
or string values of other fields
The menus Object allows for easy presentation of menus with the
ability to stack them or show them independently.
The Helpwindow object allows you easily construct a context
sensitive help system that is always available to the user.
CONCLUSION
The utilization of ObjectBase and ObjectInterface in the
construction of application programs can insure a user friendly,
powerful application without spending time on the tedium usually
associated with the more complex aspects of data base application
programming.
The developer can spend his or her time where it belongs, solving
the problem that he or she was hired to solve in a cost effective
way.